import request from '@/router/axios';
import Mock from 'mockjs';
import { Random } from 'mockjs'

//商品名称 和图片
// 创建自定义 Mock 函数
Random.extend({
      // 自定义函数名: function 函数  
      fruit: function() {    
        const arr = [
            '樱の色烟酰胺润肤补水五件套提拉控油保湿滋润面部套盒护肤品套装',
            '肤姿美蜂蜜补水保湿面膜控油滋润嫩滑毛孔细致护肤化妆品面膜',
            '束渍油污净 厨房油烟机清洗剂去重油污清洁剂除油剂贴牌定制',
            '束渍香水洗衣液 女士洗衣露内衣贴身衣物持久留香不伤衣物',
            '束渍薰衣草香水洗衣液2kg厂家OEM 贴牌代加工定制',
            '洗洁精1.2kg大桶厨房餐具洗涤剂果蔬净工厂直销洗碗液',
            '束渍2kg香水洗衣液瓶装贴牌代工OEM厂家直销正品赠品持久留香',
            '高端洗洁精柠檬香型餐具清洁剂洗碗液洗涤剂贴牌厂家直销oem',
            '【正品】束渍椰油洗衣液2kg  厂家直销 现货 OEM代工贴牌',
            '【正品包邮】香水洗衣液2kg 持久留香厂家直销oem贴牌代加工'
        ]
        return this.pick(arr)  
    }
})
let index=''
Random.extend({
    statusFn: function() {    
        index = Math.floor(Math.random() * 2)
        return this.pick(index)
    },
    // 自定义函数名: function 函数  
    reFn: function() {    
      const arr = [
          '不错不错',
          '还可以吧',
          '5星好评',
          '有点问题，不建议买',
          '满意',
          '物流很快',
          '态度不错',
          '不满意',
          '有点失望',
          '下次不会买了'
      ]
      return this.pick(arr)  
    },
    replyFn:function(){
        if(index==0){
            return '感谢亲，对我们的支持'
        }else{
            return ''
        }
    }
})
//@fruit()随机生成 商品名称
//@reFn()随机生成 评论

var ids = Mock.mock({"id|300-500":1000});
let list = Mock.mock({
    "tableList|10-30":[
        {   
            name:'@cname', //用户名
            "id|1-299":100,     //编号
            addTime:'@datetime', //添加时间
            goodsname:'@fruit()',  //商品名称
            goodsreview:'@reFn()',  //评论
            "class|1-10": 1,   // 打分
            status:"@statusFn()",   //回复状态  0 回复  1 未回复
            reply:'@replyFn()',   //回复内容
        }
    ]
})

// 获取评论列表
export const reviewList = (data) =>request({
    url:'/reviewList',
    method:'get',
    data
})
Mock.mock(/\/reviewList/,config=>{
    let {pagesize,pagenum} = JSON.parse(config.body);
    let _list = list.tableList;
    //总条数
    let total = _list.length;
    //返回当前页数的对应的pagesize数量的数据
    if(pagesize && pagenum){
        let user = _list.filter((item,index)=>index<pagesize*pagenum && index>=pagesize*(pagenum-1));
        return {
            data:{
                user,total,pagenum,pagesize
            },
            meta:{
                msg:'请求成功',
                status:200
            }
        }
    }else{
        return {
            meta:{
                msg:'获取失败',
                status:400
            }
        }
    }
})


//删除评论
export const detreview = (data) =>request({
    url:'/detreview',
    mothed:'delete',
    data
})
Mock.mock(/\/detreview/,config=>{
    let {id} = JSON.parse(config.body);
    let _list = list.tableList;
    if(id){
        for(let index in _list){
            if(_list[index].id==id){
                _list.splice(index,1)
            }
        }
        return {
            meta:{
                msg:'删除成功',
                status:200
            }
        }
    }else{
        return {
            meta:{
                msg:'删除失败',
                status:400
            }
        }
    }
    
})

//根据商品id 用户名称 查询评论
export const queryreview = (data) =>request({
    url:'/queryreview',
    mothed:'get',
    data
})
Mock.mock(/\/queryreview/,config=>{
    let datas = JSON.parse(config.body);
    let _list = list.tableList;
    let arr = [];
    if(datas.id || datas.name){
        if(datas.id){
            arr = _list.filter((item,index)=>item.id==datas.id);
        }   
        if(datas.name){
            arr = (arr.length==0?_list:arr).filter((item,index)=>item.name.indexOf(datas.name)!=-1);
        }
        let total = arr.length;
        let pagesize = arr.length
        return {
            data:{
                arr,total,pagesize
            },
            meta:{
                msg:'获取成功',
                status:200
            }
        }
    }else{
        return {
            meta:{
                msg:'参数错误',
                status:400
            }
        }
    }
})

// 回复评论
export const editreview = (data) =>request({
    url:'/editreview',
    mothed:'put',
    data
})
Mock.mock(/\/editreview/,config=>{
    let datas = JSON.parse(config.body);
    let _list = list.tableList;
    let {id} = datas;
    if(id){
        for(let item of _list){
            if(item.id==id){
                item.reply=datas.reply?datas.reply:'';
                item.status = 0;
            }
        }
        return {
            meta:{
                msg:'修改成功',
                status:200
            }
        }
    }else{
        return {
            meta:{
                msg:'参数错误',
                status:400
            }
        }
    }
   
})
